DatabaseVendorSettings.java
package org.codefilarete.stalactite.engine;
import java.util.Set;
import org.codefilarete.stalactite.sql.GeneratedKeysReaderFactory;
import org.codefilarete.stalactite.sql.ServiceLoaderDialectResolver.DatabaseSignet;
import org.codefilarete.stalactite.sql.ddl.JavaTypeToSqlTypeMapping;
import org.codefilarete.stalactite.sql.statement.binder.ParameterBinderRegistry;
/**
* Generic configuration of a vendor database.
* This class gives the SQL factories which are necessary to a build a {@link org.codefilarete.stalactite.sql.Dialect}.
* The class is generic and can be used with any database, user may override it to creates an appropriate one for a particular vendor, and put it
* close to the {@link org.codefilarete.stalactite.sql.DialectResolver}.
*
* @author Guillaume Mary
*/
public class DatabaseVendorSettings {
private final DatabaseSignet compatibility;
/**
* Keywords to be escaped in generated SQL
*/
private final Set<String> keywords;
private final char quotingCharacter;
private final JavaTypeToSqlTypeMapping javaTypeToSqlTypes;
private final ParameterBinderRegistry parameterBinderRegistry;
private final SQLOperationsFactoriesBuilder sqlOperationsFactoriesBuilder;
private final GeneratedKeysReaderFactory generatedKeysReaderFactory;
/**
* Maximum number of values for an "in" operator
*/
private final int inOperatorMaxSize;
private final boolean supportsTupleCondition;
public DatabaseVendorSettings(DatabaseSignet compatibility,
Set<String> keywords,
char quotingCharacter,
JavaTypeToSqlTypeMapping javaTypeToSqlTypes,
ParameterBinderRegistry parameterBinderRegistry,
SQLOperationsFactoriesBuilder sqlOperationsFactoriesBuilder,
GeneratedKeysReaderFactory generatedKeysReaderFactory,
int inOperatorMaxSize,
boolean supportsTupleCondition) {
this.compatibility = compatibility;
this.keywords = keywords;
this.quotingCharacter = quotingCharacter;
this.javaTypeToSqlTypes = javaTypeToSqlTypes;
this.parameterBinderRegistry = parameterBinderRegistry;
this.sqlOperationsFactoriesBuilder = sqlOperationsFactoriesBuilder;
this.generatedKeysReaderFactory = generatedKeysReaderFactory;
this.inOperatorMaxSize = inOperatorMaxSize;
this.supportsTupleCondition = supportsTupleCondition;
}
public DatabaseSignet getCompatibility() {
return compatibility;
}
public Set<String> getKeywords() {
return keywords;
}
public char getQuoteCharacter() {
return quotingCharacter;
}
public JavaTypeToSqlTypeMapping getJavaTypeToSqlTypes() {
return javaTypeToSqlTypes;
}
public ParameterBinderRegistry getParameterBinderRegistry() {
return parameterBinderRegistry;
}
public SQLOperationsFactoriesBuilder getSqlOperationsFactoriesBuilder() {
return sqlOperationsFactoriesBuilder;
}
public GeneratedKeysReaderFactory getGeneratedKeysReaderFactory() {
return generatedKeysReaderFactory;
}
public int getInOperatorMaxSize() {
return inOperatorMaxSize;
}
public boolean supportsTupleCondition() {
return supportsTupleCondition;
}
}